import { IPSDataEntityObject } from '../ipsdata-entity-object';
import { IPSDEMainState } from './ipsdemain-state';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEMainStateRS
 */
export interface IPSDEMainStateRS extends IPSDataEntityObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 进入主状态
   *
   * @type {IPSDEMainState}
   */
  getNextPSDEMainState(): IPSDEMainState | null;

  /**
   * 进入主状态
   *
   * @type {IPSDEMainState}
   */
  get nextPSDEMainState(): IPSDEMainState | null;

  /**
   * 进入主状态（必须存在）
   *
   * @type {IPSDEMainState}
   */
  getNextPSDEMainStateMust(): IPSDEMainState;

  /**
   * 前序主状态
   *
   * @type {IPSDEMainState}
   */
  getPrevPSDEMainState(): IPSDEMainState | null;

  /**
   * 前序主状态
   *
   * @type {IPSDEMainState}
   */
  get prevPSDEMainState(): IPSDEMainState | null;

  /**
   * 前序主状态（必须存在）
   *
   * @type {IPSDEMainState}
   */
  getPrevPSDEMainStateMust(): IPSDEMainState;
}
